package com.xu.system.service.db;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xu.system.model.entity.SysUserRole;

import java.util.List;

/**
 * <p>
 * 用户和角色关联表 服务类
 * </p>
 *
 * @author 许乾伟
 * @since 2024-12-03 03:53:31
 */
public interface ISysUserRoleService extends IService<SysUserRole> {
    /**
     * 保存用户角色关联
     * @param userId
     * @param roleIds
     * @return
     */
    boolean saveUserRole(Long userId, List<Long> roleIds);

    /**
     * 获取用户下角色id集合
     * @param userId 用户id
     * @return
     */
    List<Long> getRoleIdsByUserId(Long userId);

    /**
     * 获取角色下用户id集合
     * @param roleId 角色id
     * @return
     */
    List<Long> getUserIdsByRoleId(Long roleId);

    /**
     * 判断一个角色是否被使用
     * @param roleId 角色id
     * @return
     */
    Boolean isUse(Long roleId);

    /**
     * 取消一个用户的角色授权
     * @param userId
     * @param roleId
     * @return
     */
    Boolean delUserRole(Long userId, Long roleId);
}
